local server = require "resty.websocket.server"                     -- 加载 WebSocket 库
 
 
local wb, err = server.new{                                         -- 创建服务器对象
    timeout = 5000,                                                 -- 超时时间 5 秒
    max_payload_len = 1024 * 64,                                    -- 数据帧最大 64KB
}
 
 
if not wb then                                                      -- 检查对象是否创建成功
    ngx.log(ngx.ERR, "failed to init: ", err)                       -- 记录错误日志
    ngx.exit(444)                                                   -- 无法运行 WebSocket 服务
end
 
 
local data, typ, bytes, err                                         -- 返回值使用的变量声明
 
 
while true do                                                       -- 无限循序提供服务
     ngx.log(ngx.ERR, " 111111 : ") 
    data, typ, err = wb:recv_frame()                               -- 接受数据帧
          ngx.log(ngx.ERR, " 22222 : ") 
     if wb.fatal then
       ngx.log(ngx.ERR,"failed to receive frame: ", err)
      return ngx.exit(444)
    end
 
 
    if typ == "close" then                                          -- close 数据帧
     ngx.log(ngx.ERR, " close : ")               
        bytes, err = wb:send_close()                                -- 发送 close 数据帧
        ngx.exit(0)                                                 -- 服务正常结束
    end
 
 
    if typ == "ping" then                                           -- ping 数据帧
     ngx.log(ngx.ERR, " ping : ")               
        bytes, err = wb:send_pong()                                 -- 发送 pong 数据帧
    end
 
 
    if typ == "text" then                                           -- 文本数据帧
            ngx.log(ngx.ERR, " success : ====")               
            local bytes, err = wb:send_text("nginx返回数据:"..data)
    end
end  


